Observations: 146,774
Variables: 14
$ calldatetime         <dttm> 2015-12-06 08:06:00, 2015-12-06 08:32:00, 2015-12-06 09:05:00, 201...
$ callnumber           <chr> "P153400663", "P153400693", "P153400741", "P153400743", "P153400750...
$ description          <chr> "NARCOTICSOutside", "NARCOTICSOutside", "NARCOTICSOutside", "NARCOT...
$ district             <chr> "CD", "NW", "SD", "NW", "NW", "CD", "WD", "SW", "SW", "NW", "NW", "...
$ incidentlocation     <chr> "0 N HOWARD ST", "5400 BLK NARCISSUS AV", "1900 W LOMBARD ST", "BEA...
$ location_address     <chr> "0 N HOWARD ST", "5400 BLK NARCISSUS AV", "1900 W LOMBARD ST", "BEA...
$ location_city        <chr> "BALTIMORE", "BALTIMORE", "BALTIMORE", "BALTIMORE", "BALTIMORE", "B...
$ location_state       <chr> "MD", "MD", "MD", "MD", "MD", "MD", "MD", "MD", "MD", "MD", "MD", "...
$ priority             <chr> "Medium", "Medium", "Medium", "Medium", "Medium", "Medium", "Medium...
$ recordid             <chr> "1000151", "1000177", "1000216", "1000219", "1000222", "1000247", "...
$ location.type        <chr> NA, "Point", "Point", NA, NA, NA, NA, "Point", "Point", "Point", "P...
$ location.coordinates <list> [NULL, <-76.68436, 39.34901>, <-76.64695, 39.28613>, NULL, NULL, N...
$ long                 <dbl> NA, -76.68436, -76.64695, NA, NA, NA, NA, -76.65649, -76.66371, -76...
$ lat                  <dbl> NA, 39.34901, 39.28613, NA, NA, NA, NA, 39.28622, 39.30140, 39.3471...

2015 Narcotics CFS per 1,000 Residents

2018 Narcotics CFS per 1,000 Residents

LS0tDQp0aXRsZTogIiINCmF1dGhvcjogIkp1c3RpbiBFbHN6YXN6LCBNYXlvcidzIE9mZmljZSBvZiBJbm5vdmF0aW9uIg0KZW1haWw6ICJqdXN0aW4uZWxzemFzekBiYWx0aW1vcmVjaXR5LmdvdiINCmRhdGU6ICJUdWVzZGF5LCBGZWJydWFyeSAxMiwgMjAxOSINCm91dHB1dDoNCiAgaHRtbF9ub3RlYm9vazoNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICBmaWdfaGVpZ2h0OiA1DQogICAgZmlnX3dpZHRoOiAxMA0KICAgIHRvYzogeWVzDQogICAgdG9jX2RlcHRoOiAyDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGUgPSBGQUxTRSwgZWNobyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UsIGNhY2hlID0gVFJVRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UsIA0KICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmcgPSBGLCANCiAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gRiwgDQogICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZSA9IFQsDQogICAgICAgICAgICAgICAgICAgICAgZmlnLndpZHRoID0gMTAsDQogICAgICAgICAgICAgICAgICAgICAgZmlnLmhlaWdodCA9IDUpDQpgYGAgDQoNCg0KDQpgYGB7cn0NCnNvdXJjZSgiLi4vc3JjLzAwX2luaXRpYWxpemUuUiIpDQpsaWJyYXJ5KFJTb2NyYXRhKQ0KbGlicmFyeShzY2FsZXMpDQpsaWJyYXJ5KGx1YnJpZGF0ZSkNCmxpYnJhcnkobGVhZmxldCkNCmBgYA0KDQoNCmBgYHtyfQ0KaG10IDwtIGxvYWRfYmxvY2tfZ3JvdXBfZGF0YShsb2FkLmNhY2hlID0gVCkNCmhvb2RzIDwtIGdldF9uZWlnaGJvcmhvb2RfYm91bmRhcmllcygpDQpjZnMubmFyYyA8LSByZWFkLnNvY3JhdGEoImh0dHBzOi8vZGF0YS5iYWx0aW1vcmVjaXR5Lmdvdi9yZXNvdXJjZS9tOGc5LWFiZ2IuanNvbj9kZXNjcmlwdGlvbj1OQVJDT1RJQ1NPdXRzaWRlIikNCiNjcmltZSA8LSByZWFkLnNvY3JhdGEoImh0dHBzOi8vZGF0YS5iYWx0aW1vcmVjaXR5Lmdvdi9yZXNvdXJjZS80aWg1LWQ1ZDUuanNvbiIpDQpgYGANCg0KYGBge3J9DQpjZnMubmFyYyA8LSBjZnMubmFyYyAlPiUgDQogIHVubGlzdF9sYXRfbG9uZygibG9jYXRpb24uY29vcmRpbmF0ZXMiKQ0KDQpjZnMubmFyYy5nZW8gPC0gY2ZzLm5hcmMgJT4lIGZpbHRlcighaXMubmEobG9uZykpDQogIA0KY2ZzLm5hcmMuZ2VvIDwtIFNwYXRpYWxQb2ludHNEYXRhRnJhbWUoDQogIGNmcy5uYXJjLmdlbyAlPiUgc2VsZWN0KGxvbmcsIGxhdCksIGNmcy5uYXJjLmdlbywNCiAgcHJvajRzdHJpbmcgPSBDUlMoIitwcm9qPWxvbmdsYXQgK2RhdHVtPVdHUzg0ICtub19kZWZzICtlbGxwcz1XR1M4NCArdG93Z3M4ND0wLDAsMCIpKQ0KDQpjZnMubmFyYy5nZW8gPC0gc3BUcmFuc2Zvcm0oY2ZzLm5hcmMuZ2VvLCBDUlNvYmogPSBDUlMoIitpbml0PWVwc2c6NDMyNiArcHJvaj1sb25nbGF0ICtkYXR1bT1XR1M4NCArbm9fZGVmcyArZWxscHM9V0dTODQgK3Rvd2dzODQ9MCwwLDAiKSkNCmBgYA0KDQoNCmBgYHtyfQ0KY2ZzLm5hcmMgJT4lIGdsaW1wc2UNCmBgYA0KDQpgYGB7cn0NCmNmcy5uYXJjICU+JSANCiAgY291bnQoIWlzLm5hKGxvbmcpKSAlPiUgDQogIG11dGF0ZShwY3QgPSBwZXJjZW50KG4gLyBzdW0obikpKSANCmBgYA0KYGBge3J9DQpjZnMubmFyYyAlPiUNCiAgbXV0YXRlKGNhbGwueW0gPSBmbG9vcl9kYXRlKGNhbGxkYXRldGltZSwgIm1vbnRoIikpICU+JQ0KICBmaWx0ZXIoY2FsbC55bSA8ICIyMDE5LTAxLTAxIikgJT4lDQogIGNvdW50KGNhbGwueW0pICU+JQ0KICBnZ3Bsb3QoYWVzKGNhbGwueW0sIG4pKSArDQogIGdlb21fbGluZSgpICsNCiAgdGhlbWVfaXRlYW1fZ29vZ2xlX2RvY3MoKQ0KYGBgDQoNCmBgYHtyfQ0KY2ZzLm5hcmMgJT4lDQogIGNvdW50KHllYXIoY2FsbGRhdGV0aW1lKSkNCmBgYA0KDQoNCg0KDQpgYGB7cn0NCnNldC5zZWVkKDEpDQoNCm1hcC5wb2ludHMgPC0gY2ZzLm5hcmMuZ2VvW3NhbXBsZSgxOmxlbmd0aChjZnMubmFyYy5nZW8pLCA1MDAwMCksIF0NCg0KbGVhZmxldCgpICU+JQ0KICBzZXRWaWV3KGxuZyA9IC03Ni42LCBsYXQgPSAzOS4zLCB6b29tID0gMTEpICU+JQ0KICBhZGRQcm92aWRlclRpbGVzKHByb3ZpZGVycyRTdGFtZW4uVG9uZXJMaXRlKSAlPiUNCiAgYWRkUG9seWdvbnMoZGF0YSA9IGhtdCwNCiAgICAgICAgICAgICAgZmlsbE9wYWNpdHkgPSAwLA0KICAgICAgICAgICAgICBjb2xvciA9IGl0ZWFtLmNvbG9yc1syXSwNCiAgICAgICAgICAgICAgb3BhY2l0eSA9IDAuNywNCiAgICAgICAgICAgICAgd2VpZ2h0ID0gMSkgJT4lDQogIGFkZENpcmNsZU1hcmtlcnMoZGF0YSA9IG1hcC5wb2ludHMsIHJhZGl1cyA9IDEsIGNvbG9yID0gaXRlYW0uY29sb3JzWzVdKQ0KDQpgYGANCg0KYGBge3J9DQpjZnMubmFyYy5obXQgPC0gb3ZlcihjZnMubmFyYy5nZW8sIGhtdCkNCg0KY2ZzLm5hcmMuZ2VvQGRhdGEgPC0gYmluZF9jb2xzKGNmcy5uYXJjLmdlb0BkYXRhLCBjZnMubmFyYy5obXQpDQoNCmNmcy5uYXJjLmdlb0BkYXRhICU+JSBoZWFkDQpgYGANCg0KYGBge3J9DQptYXAucG9pbnRzIDwtIGNmcy5uYXJjLmdlb1tzYW1wbGUoMTpsZW5ndGgoY2ZzLm5hcmMuZ2VvKSwgMTAwMDApLCBdDQoNCg0KcGFsIDwtIGNvbG9yRmFjdG9yKA0KICBkb21haW4gPSBtYXAucG9pbnRzJE1WQTE3SHJkQ2QsDQogIHBhbGV0dGUgPSB0b3BvLmNvbG9ycygxNSkNCikNCg0KDQpsZWFmbGV0KCkgJT4lDQogIHNldFZpZXcobG5nID0gLTc2LjYsIGxhdCA9IDM5LjMsIHpvb20gPSAxMSkgJT4lDQogIGFkZFByb3ZpZGVyVGlsZXMocHJvdmlkZXJzJFN0YW1lbi5Ub25lckxpdGUpICU+JQ0KICBhZGRQb2x5Z29ucyhkYXRhID0gaG10LA0KICAgICAgICAgICAgICBmaWxsT3BhY2l0eSA9IDAsDQogICAgICAgICAgICAgIGNvbG9yID0gaXRlYW0uY29sb3JzWzJdLA0KICAgICAgICAgICAgICBvcGFjaXR5ID0gMC43LA0KICAgICAgICAgICAgICB3ZWlnaHQgPSAxKSAlPiUNCiAgYWRkQ2lyY2xlTWFya2VycyhkYXRhID0gbWFwLnBvaW50cywgcmFkaXVzID0gMSwgY29sb3IgPSB+cGFsKG1hcC5wb2ludHMkTVZBMTdIcmRDZCkpDQoNCmBgYA0KDQpgYGB7cn0NCnRpZXIucG9wIDwtIGhtdEBkYXRhICU+JSBncm91cF9ieShobXQudGllcikgJT4lIHN1bW1hcmlzZSh0aWVyLnBvcCA9IHN1bShQb3B1bGF0aW9uLjIwMTYpKQ0KDQpjZnMubmFyYy5nZW9AZGF0YSAlPiUNCiAgbXV0YXRlKGNhbGwueWVhciA9IHllYXIoY2FsbGRhdGV0aW1lKSkgJT4lDQogIGZpbHRlcihjYWxsLnllYXIgIT0gMjAxOSwgIWlzLm5hKGhtdC50aWVyKSkgJT4lDQogIGNvdW50KGhtdC50aWVyKSAlPiUNCiAgbGVmdF9qb2luKHRpZXIucG9wLCBieSA9ICJobXQudGllciIpICU+JQ0KICB1bmdyb3VwKCkgJT4lIA0KICBtdXRhdGUoYW5udWFsLm5hcmMuY2FsbC5wZXIxMDAwID0gcm91bmQoMTAwMCAqIG4gLyB0aWVyLnBvcCAvIDQsIDEpLA0KICAgICAgICAgcGN0LnBvcCA9IHBlcmNlbnQodGllci5wb3AgLyBzdW0odGllci5wb3AsIG5hLnJtID0gVCkpLA0KICAgICAgICAgcGN0LmNhbGxzID0gcGVyY2VudChuIC8gc3VtKG4pKSkgJT4lDQogIGFycmFuZ2UoZGVzYyhhbm51YWwubmFyYy5jYWxsLnBlcjEwMDApKQ0KYGBgDQoNCmBgYHtyfQ0KY2ZzLm5hcmMucmF0aW9zLmJ5LnllYXIgPC0gY2ZzLm5hcmMuZ2VvQGRhdGEgJT4lDQogIG11dGF0ZShjYWxsLnllYXIgPSB5ZWFyKGNhbGxkYXRldGltZSkpICU+JQ0KICBmaWx0ZXIoY2FsbC55ZWFyICE9IDIwMTksDQogICAgICAgICAhaXMubmEoaG10LnRpZXIpKSAlPiUNCiAgY291bnQoaG10LnRpZXIsIGNhbGwueWVhcikgJT4lDQogIGxlZnRfam9pbih0aWVyLnBvcCwgYnkgPSAiaG10LnRpZXIiKSAlPiUNCiAgbXV0YXRlKG5hcmMuY2FsbC5yYXRpbyA9IHJvdW5kKDEwMDAgKm4gLyB0aWVyLnBvcCwgMSkpICU+JQ0KICB1bmdyb3VwKCkgJT4lDQogIGdyb3VwX2J5KGNhbGwueWVhcikgJT4lDQogIGFycmFuZ2UoaG10LnRpZXIpICU+JQ0KICB1bmdyb3VwKCkgJT4lDQogIGdyb3VwX2J5KGhtdC50aWVyKSAlPiUNCiAgbXV0YXRlKG5hcmMuY2FsbC5yYXRpby5wY3QuY2hnID0gbmFyYy5jYWxsLnJhdGlvIC8gZmlyc3QobmFyYy5jYWxsLnJhdGlvKSAtIDEpDQoNCmNmcy5uYXJjLnJhdGlvcy5ieS55ZWFyDQpgYGANCg0KDQpgYGB7ciBmaWcud2lkdGggPSA3LCBmaWcuaGVpZ2h0ID0gNH0NCmNmcy5uYXJjLnJhdGlvcy5ieS55ZWFyICU+JQ0KICBmaWx0ZXIoaG10LnRpZXIgIT0gIm90aGVyIikgJT4lDQogIGdncGxvdChhZXMoY2FsbC55ZWFyLCBuYXJjLmNhbGwucmF0aW8ucGN0LmNoZywgY29sb3IgPSBobXQudGllcikpICsNCiAgZ2VvbV9saW5lKHNpemUgPSAwLjc1KSArDQogIHRoZW1lX2l0ZWFtX2dvb2dsZV9kb2NzKCkgKw0KICB0aGVtZShheGlzLnRpdGxlLnggPSBlbGVtZW50X2JsYW5rKCkpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxhYmVscyA9IHNjYWxlczo6cGVyY2VudCwgbGltaXRzID0gYygtLjUsIC41KSkgKw0KICBsYWJzKHRpdGxlID0gIkNoYW5nZXMgaW4gTmFyY290aWNzIDkxMSBDRlMgYnkgSG91c2luZyBUeXBvbG9neSBUaWVyXG4yMDE1IEJhc2UgWWVhciIsDQogICAgICAgeSA9ICIlIENoYW5nZSBpbiBOYXJjb3RpY3MgQ2FsbHMgUmF0aW8gZnJvbSAyMDE1IikgDQogIA0KYGBgDQoNCmBgYHtyIGVjaG8gPSBGfQ0KY2ZzLm5hcmMuYmcgPC0gb3ZlcihjZnMubmFyYy5nZW8sIGhtdCkNCg0KY2ZzLm5hcmMuZ2VvQGRhdGEgPC0gYmluZF9jb2xzKGNmcy5uYXJjLmdlb0BkYXRhLCBjZnMubmFyYy5iZykNCg0KY2ZzLm5hcmMuYmcuY291bnRzIDwtIGFzLmRhdGEuZnJhbWUodGFibGUoeWVhcihjZnMubmFyYy5nZW8kY2FsbGRhdGV0aW1lKSwgY2ZzLm5hcmMuZ2VvJGJnKSkgJT4lIA0KICBzcHJlYWQoa2V5ID0gVmFyMSwgdmFsdWUgPSBGcmVxKSAlPiUNCiAgcmVuYW1lKGNmcy5uYXJjLjIwMTUgPSAiMjAxNSIsDQogICAgICAgICBjZnMubmFyYy4yMDE2ID0gIjIwMTYiLA0KICAgICAgICAgY2ZzLm5hcmMuMjAxNyA9ICIyMDE3IiwNCiAgICAgICAgIGNmcy5uYXJjLjIwMTggPSAiMjAxOCIsDQogICAgICAgICBjZnMubmFyYy4yMDE5ID0gIjIwMTkiLA0KICAgICAgICAgYmcgPSAiVmFyMiIpICU+JQ0KICBzZWxlY3QoLWNmcy5uYXJjLjIwMTkpICU+JQ0KICBtdXRhdGUoY2ZzLm5hcmMuNHlyID0gY2ZzLm5hcmMuMjAxNSArIGNmcy5uYXJjLjIwMTYgKyBjZnMubmFyYy4yMDE3ICsgY2ZzLm5hcmMuMjAxOCkNCg0KaG10QGRhdGEgPC0gbGVmdF9qb2luKGhtdEBkYXRhLCBjZnMubmFyYy5iZy5jb3VudHMsIGJ5ID0gImJnIikNCiAgDQpobXRAZGF0YSA8LSBobXRAZGF0YSAlPiUgDQogIG11dGF0ZShjZnMubmFyYy5yYXRpbyA9IDEwMDAgKiBjZnMubmFyYy40eXIgLyBQb3B1bGF0aW9uLjIwMTYgLyA0LCAjIDQgeWVhcnMNCiAgICAgICAgIGNmcy5uYXJjLnJhdGlvLjIwMTUgPSAxMDAwICogY2ZzLm5hcmMuMjAxNSAvIFBvcHVsYXRpb24uMjAxNiwNCiAgICAgICAgIGNmcy5uYXJjLnJhdGlvLjIwMTYgPSAxMDAwICogY2ZzLm5hcmMuMjAxNiAvIFBvcHVsYXRpb24uMjAxNiwNCiAgICAgICAgIGNmcy5uYXJjLnJhdGlvLjIwMTcgPSAxMDAwICogY2ZzLm5hcmMuMjAxNyAvIFBvcHVsYXRpb24uMjAxNiwNCiAgICAgICAgIGNmcy5uYXJjLnJhdGlvLjIwMTggPSAxMDAwICogY2ZzLm5hcmMuMjAxOCAvIFBvcHVsYXRpb24uMjAxNiwNCiAgICAgICAgIGNmcy5uYXJjLnJhdGlvLnBjdC5jaGcuMTVfMTggPSAoY2ZzLm5hcmMucmF0aW8uMjAxOCAtIGNmcy5uYXJjLnJhdGlvLjIwMTUpIC8gY2ZzLm5hcmMucmF0aW8uMjAxNSkNCg0KaG10QGRhdGEgJT4lIHNlbGVjdChiZywgY2ZzLm5hcmMucmF0aW8sIGNmcy5uYXJjLnJhdGlvLjIwMTUpICU+JSBoZWFkDQpgYGANCg0KYGBge3J9DQpobXRAZGF0YSAlPiUNCiAgZ2dwbG90KGFlcyhjZnMubmFyYy5yYXRpbykpICsNCiAgZ2VvbV9oaXN0b2dyYW0oKSArDQogIHRoZW1lX2l0ZWFtX2dvb2dsZV9kb2NzKCkgKw0KICB4bGltKGMoLTUwLCAzMDApKQ0KYGBgDQoNCg0KYGBge3IgZWNobyA9IEZ9DQpiaW5zIDwtIGMoc2VxKDAsIDI1MCwgMjApLCBJbmYpDQpwYWwgPC0gY29sb3JCaW4oIllsT3JSZCIsIGRvbWFpbiA9IGhtdCRjZnMubmFyYy5yYXRpbywgYmlucyA9IGJpbnMpDQoNCmxlYWZsZXQoKSAlPiUNCiAgc2V0VmlldyhsbmcgPSAtNzYuNiwgbGF0ID0gMzkuMywgem9vbSA9IDExKSAlPiUNCiAgYWRkUHJvdmlkZXJUaWxlcyhwcm92aWRlcnMkU3RhbWVuLlRvbmVyTGl0ZSkgJT4lIA0KICBhZGRQb2x5Z29ucyhkYXRhID0gaG10LCANCiAgICAgICAgICAgICAgZmlsbENvbG9yID0gfnBhbChobXQkY2ZzLm5hcmMucmF0aW8pLCANCiAgICAgICAgICAgICAgY29sb3IgPSBpdGVhbS5jb2xvcnNbMl0sIA0KICAgICAgICAgICAgICB3ZWlnaHQgPSAxLCANCiAgICAgICAgICAgICAgZmlsbE9wYWNpdHkgPSAuNiwNCiAgICAgICAgICAgICAgbGFiZWwgPSB+YXMuY2hhcmFjdGVyKHJvdW5kKGhtdCRjZnMubmFyYy5yYXRpbywgMikpKSAlPiUNCiAgYWRkUG9seWdvbnMoZGF0YSA9IGhvb2RzLCANCiAgICAgICAgICAgICAgd2VpZ2h0ID0gMiwgDQogICAgICAgICAgICAgIGNvbG9yID0gImJsYWNrIiwNCiAgICAgICAgICAgICAgb3BhY2l0eSA9IDAuNSwNCiAgICAgICAgICAgICAgZmlsbE9wYWNpdHkgPSAwLCANCiAgICAgICAgICAgICAgbGFiZWwgPSB+aG9vZHMkbGFiZWwpDQoNCmBgYA0KDQojIDIwMTUgTmFyY290aWNzIENGUyBwZXIgMSwwMDAgUmVzaWRlbnRzDQoNCmBgYHtyIGVjaG8gPSBGfQ0KbGVhZmxldCgpICU+JQ0KICBzZXRWaWV3KGxuZyA9IC03Ni42LCBsYXQgPSAzOS4zLCB6b29tID0gMTEpICU+JQ0KICBhZGRQcm92aWRlclRpbGVzKHByb3ZpZGVycyRTdGFtZW4uVG9uZXJMaXRlKSAlPiUgDQogIGFkZFBvbHlnb25zKGRhdGEgPSBobXQsIA0KICAgICAgICAgICAgICBmaWxsQ29sb3IgPSB+cGFsKGhtdCRjZnMubmFyYy5yYXRpby4yMDE1KSwgDQogICAgICAgICAgICAgIGNvbG9yID0gaXRlYW0uY29sb3JzWzJdLCANCiAgICAgICAgICAgICAgd2VpZ2h0ID0gMSwgDQogICAgICAgICAgICAgIGZpbGxPcGFjaXR5ID0gLjYsDQogICAgICAgICAgICAgIGxhYmVsID0gfmFzLmNoYXJhY3Rlcihyb3VuZChobXQkY2ZzLm5hcmMucmF0aW8uMjAxNSwgMikpKSAlPiUNCiAgYWRkUG9seWdvbnMoZGF0YSA9IGhvb2RzLCANCiAgICAgICAgICAgICAgd2VpZ2h0ID0gMiwgDQogICAgICAgICAgICAgIGNvbG9yID0gImJsYWNrIiwNCiAgICAgICAgICAgICAgb3BhY2l0eSA9IDAuNSwNCiAgICAgICAgICAgICAgZmlsbE9wYWNpdHkgPSAwLCANCiAgICAgICAgICAgICAgbGFiZWwgPSB+aG9vZHMkbGFiZWwpDQoNCmBgYA0KDQojIDIwMTggTmFyY290aWNzIENGUyBwZXIgMSwwMDAgUmVzaWRlbnRzDQoNCmBgYHtyIGVjaG8gPSBGfQ0KbGVhZmxldCgpICU+JQ0KICBzZXRWaWV3KGxuZyA9IC03Ni42LCBsYXQgPSAzOS4zLCB6b29tID0gMTEpICU+JQ0KICBhZGRQcm92aWRlclRpbGVzKHByb3ZpZGVycyRTdGFtZW4uVG9uZXJMaXRlKSAlPiUgDQogIGFkZFBvbHlnb25zKGRhdGEgPSBobXQsIA0KICAgICAgICAgICAgICBmaWxsQ29sb3IgPSB+cGFsKGhtdCRjZnMubmFyYy5yYXRpby4yMDE4KSwgDQogICAgICAgICAgICAgIGNvbG9yID0gaXRlYW0uY29sb3JzWzJdLCANCiAgICAgICAgICAgICAgd2VpZ2h0ID0gMSwgDQogICAgICAgICAgICAgIGZpbGxPcGFjaXR5ID0gLjYsDQogICAgICAgICAgICAgIGxhYmVsID0gfmFzLmNoYXJhY3Rlcihyb3VuZChobXQkY2ZzLm5hcmMucmF0aW8uMjAxOCwgMikpKSAlPiUNCiAgYWRkUG9seWdvbnMoZGF0YSA9IGhvb2RzLCANCiAgICAgICAgICAgICAgd2VpZ2h0ID0gMiwgDQogICAgICAgICAgICAgIGNvbG9yID0gImJsYWNrIiwNCiAgICAgICAgICAgICAgb3BhY2l0eSA9IDAuNSwNCiAgICAgICAgICAgICAgZmlsbE9wYWNpdHkgPSAwLCANCiAgICAgICAgICAgICAgbGFiZWwgPSB+aG9vZHMkbGFiZWwpDQoNCmBgYA0KDQpgYGB7cn0NCmhtdEBkYXRhICU+JSBnZ3Bsb3QoYWVzKGNmcy5uYXJjLnJhdGlvLnBjdC5jaGcuMTVfMTgpKSArIGdlb21faGlzdG9ncmFtKCkgKyB4bGltKGMoLTMsMTApKQ0KYGBgDQoNCg0KDQpgYGB7ciBlY2hvID0gRn0NCm1pZC5iaWcuY2hhbmdlIDwtIHN1YnNldChobXQsIA0KICAgICAgICAgICAgICAgICAgICAgICAgIGhtdC50aWVyICVpbiUgYygibG93ZXIgbWlkZGxlIiwgInVwcGVyIG1pZGRsZSIpKQ0KDQpiaW5zIDwtIGMoLUluZiwgc2VxKC0yLCAyLCAuMiksIEluZikNCnBhbCA8LSBjb2xvckJpbigiUmRCdSIsIGRvbWFpbiA9IG1pZC5iaWcuY2hhbmdlJGNmcy5uYXJjLnJhdGlvLnBjdC5jaGcuMTVfMTgsIGJpbnMgPSBiaW5zLCByZXZlcnNlID0gVCkNCg0KDQoNCmxlYWZsZXQoKSAlPiUNCiAgc2V0VmlldyhsbmcgPSAtNzYuNiwgbGF0ID0gMzkuMywgem9vbSA9IDExKSAlPiUNCiAgYWRkUHJvdmlkZXJUaWxlcyhwcm92aWRlcnMkU3RhbWVuLlRvbmVyTGl0ZSkgJT4lIA0KICBhZGRQb2x5Z29ucyhkYXRhID0gbWlkLmJpZy5jaGFuZ2UsIA0KICAgICAgICAgICAgICBmaWxsQ29sb3IgPSB+cGFsKG1pZC5iaWcuY2hhbmdlJGNmcy5uYXJjLnJhdGlvLnBjdC5jaGcuMTVfMTgpLCANCiAgICAgICAgICAgICAgY29sb3IgPSBpdGVhbS5jb2xvcnNbMl0sIA0KICAgICAgICAgICAgICB3ZWlnaHQgPSAxLCANCiAgICAgICAgICAgICAgZmlsbE9wYWNpdHkgPSAuNiwNCiAgICAgICAgICAgICAgbGFiZWwgPSB+YXMuY2hhcmFjdGVyKHJvdW5kKG1pZC5iaWcuY2hhbmdlJGNmcy5uYXJjLnJhdGlvLnBjdC5jaGcuMTVfMTgsIDIpKSkgJT4lDQogIGFkZFBvbHlnb25zKGRhdGEgPSBob29kcywgDQogICAgICAgICAgICAgIHdlaWdodCA9IDIsIA0KICAgICAgICAgICAgICBjb2xvciA9ICJibGFjayIsDQogICAgICAgICAgICAgIG9wYWNpdHkgPSAwLjUsDQogICAgICAgICAgICAgIGZpbGxPcGFjaXR5ID0gMCwgDQogICAgICAgICAgICAgIGxhYmVsID0gfmhvb2RzJGxhYmVsKSANCg0KYGBgDQoNCmBgYHtyfQ0KbWlkLmJpZy5jaGFuZ2VAZGF0YSAlPiUgDQogIGdncGxvdChhZXMoY2ZzLm5hcmMucmF0aW8ucGN0LmNoZy4xNV8xOCkpICsgDQogIGdlb21faGlzdG9ncmFtKGJpbnMgPSA3IDApICsNCiAgdGhlbWVfaXRlYW1fcHJlc2VudGF0aW9ucygpICsNCiAgeGxpbShjKC0xLCAxMCkpDQpgYGANCg0K